package com.haieros.www.purerunshowsystem.utils;

import android.content.Context;
import android.media.AudioManager;
import android.media.SoundPool;
import android.util.Log;
import android.widget.Toast;

import com.haieros.www.purerunshowsystem.R;

/**
 * Created by admin on 2017/12/6.
 * 臭氧设备开启提示音工具类
 */

public class SoundPoolUtils {

    public static SoundPoolUtils mSoundPoolutils;
    private SoundPool soundPool;
    public static final int COUNT_DOWN = 1;  // 音乐标记  倒计时
    public static final int POP_UP = 2;  // 音乐标记
    public static final int CLICK_RESPONSE = 3;  // 音乐标记
    public static final int CLICK_NO_RESPONSE = 4;  // 音乐标记
    private int j = 0;
    private int i = 0;
    private Context context;
    public SoundPoolUtils(Context context) {
        this.context=context;
        init(context);
        i=0;
    }

    private void init(Context context) {
        soundPool = new SoundPool(5, AudioManager.STREAM_SYSTEM, 5);
        soundPool.load(context, R.raw.avchat_no_response, COUNT_DOWN);
        soundPool.load(context, R.raw.avchat_peer_busy, POP_UP);
        soundPool.load(context, R.raw.avchat_peer_reject, CLICK_RESPONSE);
        Log.e("----", "999");

    }

    public static SoundPoolUtils getInstence(Context context) {
        if (mSoundPoolutils == null) {
            synchronized (SoundPoolUtils.class) {
                if (mSoundPoolutils == null) {
                    mSoundPoolutils = new SoundPoolUtils(context);
                }
            }
        }
        return mSoundPoolutils;
    }

    public void startSound(final int soundID) {
        Log.e("----", "9");
//            soundPool.stop(1);
//    soundPool.stop(2);
//    soundPool.stop(3);
//        if((boolean) SharedPreferencesUtils.getParam(context,"initOk",false))
//        {
//            Toast.makeText(context,"开始播放",Toast.LENGTH_LONG).show();
//            soundPool.play(
//                    soundID,
//                    1f,   //左耳道音000量【0~1】
//                    1f,   //右耳道音量【0~1】
//                    1,     //播放优先级【0表示最低优先级】
//                    -1,     //循环模式【0表示循环一次，-1表示一直循环，其他表示数字+1表示当前数字对应的循环次数】
//                    1     //播放速度【1是正常，范围从0~2】
//            );
//        }
        soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
            @Override
            public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
                // Toast.makeText(context,"音乐加载完成",Toast.LENGTH_LONG).show();
                if (i == 0) {
                    //  Toast.makeText(context,"播放",Toast.LENGTH_LONG).show();
                    Log.e("----", "音乐家在完成"+sampleId);
                    SharedPreferencesUtils.setParam(context,"initOk",true);
                    i++;
                    soundPool.play(
                            soundID,
                            1f,   //左耳道音000量【0~1】
                            1f,   //右耳道音量【0~1】
                            1,     //播放优先级【0表示最低优先级】
                            -1,     //循环模式【0表示循环一次，-1表示一直循环，其他表示数字+1表示当前数字对应的循环次数】
                            1     //播放速度【1是正常，范围从0~2】
                    );
                }

            }
        });

    }
    public void stopSound(int stopId)
    {

    }
    public void startSound2(final int soundID,int stopId) {
        soundPool.stop(stopId);


        soundPool.play(
                soundID,
                1f,   //左耳道音000量【0~1】
                1f,   //右耳道音量【0~1】
                1,     //播放优先级【0表示最低优先级】
                -1,     //循环模式【0表示循环一次，-1表示一直循环，其他表示数字+1表示当前数字对应的循环次数】
                1     //播放速度【1是正常，范围从0~2】
        );
//        soundPool.play(
//                soundID,
//                1f,   //左耳道音000量【0~1】
//                1f,   //右耳道音量【0~1】
//                1,     //播放优先级【0表示最低优先级】
//                -1,     //循环模式【0表示循环一次，-1表示一直循环，其他表示数字+1表示当前数字对应的循环次数】
//                1     //播放速度【1是正常，范围从0~2】
//        );
    }
    public void destorySoundPool()
    {
        soundPool.release();
    }

}



